import { fileURLToPath, URL } from "node:url";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
const PrerenderSPAPlugin = require("prerender-spa-plugin");
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require("path");
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
  devServer: {
    // port: port, // 端口号
    open: true, // 是否自动打开浏览器

    // 代理跨域的配置 【仅限于在开发环境下有效果】
    // proxy: {
    //   "/login": {
    //     target: "https://api.6ocbx.com/", //!本地
    //     changeOrigin: true,
    //     pathRewrite: {
    //       // "/login": "",
    //     },
    //   },
    // },
  },
  configureWebpack: (config) => {
    if (process.env.NODE_ENV !== "production") return;
    return {
      plugins: [
        new PrerenderSPAPlugin({
          //网页包的路径将应用程序输出到prerender
          staticDir: path.join(__dirname, "dist"),
          //Routes to render 对应自己router
          routes: ["/webseo"],
          renderer: new Renderer({
            inject: {
              foo: "bar",
            },
            //渲染时显示浏览器窗口。对调试有用。
            headless: false,
            // // 在 main.js 中 document.dispatchEvent(new Event('render-event'))，两者的事件名称要对应上。
            renderAfterDocumentEvent: "render-event",
          }),
        }),
        new CompressionPlugin({
          test: /\.js$|\.html$|\.css/,
          threshold: 10240,
          deleteOriginalAssets: false,
        }),
      ],
    };
  },
});
